<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>条件渲染</title>
</head>
<script type="text/javascript" src="../js/vue.js"></script>
    <body>
        <!--
            条件渲染：
                1、v-if：
                    写法：
                        （1）v-if="表达式"
                        （2）v-else-if="表达式"
                        （3）v-else="表达式"
                    适用于：切换频率较低的场景
                    特点：不展示的DOM元素直接被移除；
                    注意：v-if可以和v-else-if、v-else一起使用，但要求结构不能被“打断”。
                2、v-show：
                    写法：v-show="表达式"
                    适用于：切换频率较高的场景
                    特点：不展示的DOM元素未被移除，仅仅是使用“style样式display: none”隐藏掉；
                3、备注
                    使用v-if的时候，元素可能无法获取到，而使用v-show，元素一定可以获取到。
        -->
        <div id="root">
            <h1>当前的n值是：{{n}}</h1>
            <span>n=1显示Angular，n=2显示React，n=3显示Vue，否则显示哈哈哈</span><br/>
            <button @click="n++">点我n+1</button>
            <!-- 使用v-show做条件渲染：值为布尔类型，可写表达式，如果为false那么元素会自动加上style属性，值为display: none（隐藏） -->
            <!-- <h1 v-show="false">你好，{{name}}</h1> -->
            <h1 v-show="1>10">Hello，{{name}}</h1>

            <!-- 使用v-if做条件渲染：值为布尔类型，可写表达式，如果为false那么元素整体结构都会直接被移除 -->
            <!-- <h1 v-if="1 === 0">你好，{{name}}</h1> -->
            <h1 v-if="false">你好，{{name}}</h1>
            
            <!-- 
                v-else-if 和 v-else的使用：
                    1、如果使用v-if、v-else-if、v-else三个条件渲染标签配合，中间不允许被打断！
                        例如几个使用条件渲染的元素之间写了一个没有条件渲染的标签，那么这几个条件渲染之间就会被打断；
                    2、有v-else-if 或 v-else时，它上面的第一个最开始使用条件渲染的元素就得是v-if，否则会报错！
            -->
            <div v-if="n === 1">Angular</div>
            <div v-else-if="n === 2">React</div>
            <div v-else-if="n === 3">Vue</div>
            <div v-else>哈哈哈</div>


        </div>

        <script type="text/javascript">
            Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示。
            
            new Vue({
                el:"#root",
                data:{
                    name:'覃小宝',
                    n:0
                }
            })
        </script>
        
    </body>
</html>